package com.ryskoo.common.dto.promotion;

import com.ryskoo.common.constant.PromotionParamConstant;
import com.ryskoo.common.constant.SystemConstant;
import com.ryskoo.common.dto.BasicDTO;

import java.util.List;

/**
 * 促销活动: <br />
 * 
 * 1、单品特价（类似淘宝一口价）<br />
 * 2、单品买赠，需要单独为商品添加赠品 <br />
 * 3、加价购
 * 4、订单满减，满M减N <br />
 * 5、订单满赠，满M赠N <br />
 * 6、免运费
 * 
 * @author hh
 *
 */
public class PromotionActivityDTO extends BasicDTO {

	private static final long serialVersionUID = 6012809164547417671L;

	/* 活动名称 */
	private String activityName;
	
	/* 活动标签语 */
	private String activityTitle;
	
	/* 活动所属类型:1.单品类2.店铺类 */
	private String activityCategory;

	/* 开始时间，精确到秒的时间 */
	private String startTime;

	/* 结束时间，精确到秒的时间 */
	private String endTime;
	
	/* 展现形式：1.特价 2.折扣，单品折扣活动时使用，根据这个字段判断前台活动展现形式 */
	private String showType = "";

	/* 活动级别，1.店铺活动  2.平台活动 */
	private String activityLevel;
	
	/* pc端活动图片 */
	private String pcImage;
	
	/*  移动端活动图片 */
	private String mobileImage;
	
	/* 所属商户 */
	private String vendorId;

	/* 活动状态：1.未开始  2.进行中   3.已结束   4.提前终止  */
	private String state;
	
	/* 活动审核状态：0.未审核  1.审核通过 2.审核不通过 */
	private String auditState;
	
	/* 活动是否发布，发布的活动才能审核，前台展示 */
	private boolean publish = true;
	
	/* 使用终端： 1.通用   2.电脑端   3.移动端 */
	private String activityClient;
	
	/* 活动类型: 1.单品特价  2.单品买赠  3.加价购 4.订单满减  5.订单满赠 6.免运费 */
	private String activityType;
	
	/* 活动范围， 1.全场、2.单品  3.品类 */
	private String activityScope;
	
	/* 促销活动描述 */
	private String note;
	
	/* 内部沟通内容，仅商户管理员可见的内容 */
	private String insideNote;

	// 关联的商品list
	private List<PromotionActivityProductRelDTO> productList ;
	
	/* 关联的规则list */
	private List<PromotionActivityRuleDTO> ruleList ;
	
	/* 中文名 - 活动状态 */
	private String stateName;
	
	/* 中文名 - 审核状态 */
	private String auditStateName;
	
	/* 中文名 - 发布状态 */
	private String publishName;
	
	/* 中文名 - 使用终端 */
	private String activityClientName;
	
	/* 中文名 - 活动类型 */
	private String activityTypeName;
	
	public List<PromotionActivityRuleDTO> getRuleList() {
		return ruleList;
	}

	public void setRuleList(List<PromotionActivityRuleDTO> ruleList) {
		this.ruleList = ruleList;
	}

	public String getStateName() {
		return stateName;
	}

	public void setStateName(String stateName) {
		this.stateName = stateName;
	}

	public String getAuditStateName() {
		return PromotionParamConstant.auditStateMap.get(this.auditState);
	}

	public void setAuditStateName(String auditStateName) {
		this.auditStateName = auditStateName;
	}

	public String getPublishName() {
		if(this.publish){
			return "已发布";
		}else{
			return "未发布";
		}
	}

	public void setPublishName(String publishName) {
		this.publishName = publishName;
	}

	public String getActivityClientName() {
		return activityClientName;
	}

	public void setActivityClientName(String activityClientName) {
		this.activityClientName = activityClientName;
	}

	public String getActivityTypeName() {
		if (SystemConstant.CONSTANT_ONE_STR.equals(this.activityCategory)) {
			return PromotionParamConstant.activityTypeForSingle.get(this.activityType);
		} else {
			return PromotionParamConstant.activityTypeForOrder.get(this.activityType);
		}
		
	}

	public void setActivityTypeName(String activityTypeName) {
		this.activityTypeName = activityTypeName;
	}

	public List<PromotionActivityProductRelDTO> getProductList() {
		return productList;
	}

	public void setProductList(List<PromotionActivityProductRelDTO> productList) {
		this.productList = productList;
	}

	public String getActivityName() {
		return activityName;
	}

	public void setActivityName(String activityName) {
		this.activityName = activityName;
	}

	public String getActivityTitle() {
		return activityTitle;
	}

	public void setActivityTitle(String activityTitle) {
		this.activityTitle = activityTitle;
	}

	public String getStartTime() {
		return startTime;
	}

	public void setStartTime(String startTime) {
		this.startTime = startTime;
	}

	public String getEndTime() {
		return endTime;
	}

	public void setEndTime(String endTime) {
		this.endTime = endTime;
	}

	public String getActivityLevel() {
		return activityLevel;
	}

	public void setActivityLevel(String activityLevel) {
		this.activityLevel = activityLevel;
	}

	public String getVendorId() {
		return vendorId;
	}

	public void setVendorId(String vendorId) {
		this.vendorId = vendorId;
	}

	public String getState() {
		return state;
	}

	public void setState(String state) {
		this.state = state;
	}

	public String getAuditState() {
		return auditState;
	}

	public void setAuditState(String auditState) {
		this.auditState = auditState;
	}

	public boolean isPublish() {
		return publish;
	}

	public void setPublish(boolean publish) {
		this.publish = publish;
	}

	public String getActivityClient() {
		return activityClient;
	}

	public void setActivityClient(String activityClient) {
		this.activityClient = activityClient;
	}

	public String getActivityType() {
		return activityType;
	}

	public void setActivityType(String activityType) {
		this.activityType = activityType;
	}

	public String getActivityScope() {
		return activityScope;
	}

	public void setActivityScope(String activityScope) {
		this.activityScope = activityScope;
	}

	public String getNote() {
		return note;
	}

	public void setNote(String note) {
		this.note = note;
	}

	public String getActivityCategory() {
		return activityCategory;
	}

	public void setActivityCategory(String activityCategory) {
		this.activityCategory = activityCategory;
	}

	public String getPcImage() {
		return pcImage;
	}

	public void setPcImage(String pcImage) {
		this.pcImage = pcImage;
	}

	public String getMobileImage() {
		return mobileImage;
	}

	public void setMobileImage(String mobileImage) {
		this.mobileImage = mobileImage;
	}

	public String getInsideNote() {
		return insideNote;
	}

	public void setInsideNote(String insideNote) {
		this.insideNote = insideNote;
	}

	public String getShowType() {
		return showType;
	}

	public void setShowType(String showType) {
		this.showType = showType;
	}
	
}
